SPDX-FileCopyrightText: 2014 David Facho Santos SPDX-FileCopyrightText: 2024 AlICe laboratory https://alicelab.be
SPDX-License-Identifier: GPL-3.0-or-later
Blender 2.71 - MACOS - 9337574 Script David Facho Santos-22/01/2015 HIROMI FUHII
import bpy
import random
from math import pi
bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.delete(use_global=False)
scene = bpy.context.sceneLongueur, largeur, hauteur d’un cube
VAL_X = 1  # Largeur d'un Cube
VAL_Y = 1  # Profondeur d'un Cube
VAL_Z = 1  # Hauteur d'un CubeRéduction des cubes
RED_L = 1.00
RED_M = 0.80
RED_S = 0.60Epaisseurs des cloisons
EPA_CLO = 0.05Quantité de cubes
CON_HAU = 2  # en hauteur
CON_LON = 2  # en longueur
CON_LAR = 2  # en largeurRéduction des cubes
VAL_X_L, VAL_Y_L, VAL_Z_L = (
    VAL_X * RED_L * 0.99,
    VAL_Y * RED_L * 0.99,
    VAL_Z * RED_L * 0.99,
)  # Réduction du cube L
VAL_X_M, VAL_Y_M, VAL_Z_M = (
    VAL_X * RED_M * 0.99,
    VAL_Y * RED_M * 0.99,
    VAL_Z * RED_M * 0.99,
)  # Réduction du cube M
VAL_X_S, VAL_Y_S, VAL_Z_S = (
    VAL_X * RED_S * 0.99,
    VAL_Y * RED_S * 0.99,
    VAL_Z * RED_S * 0.99,
)  # Réduction du cube SVerification si contraint hauteur
if CON_HAU == 0:
    HAS_HAU = random.randint(1, 4)
else:
    HAS_HAU = CON_HAU  # CONTRAINTEVerification si contraint longueur
if CON_LON == 0:
    HAS_LON = random.randint(2, 3)
else:
    HAS_LON = CON_LON  # CONTRAINTEVerification si contraint largeur
if CON_LAR == 0:
    HAS_LAR = random.randint(1, 2)
else:
    HAS_LAR = CON_LAR  # CONTRAINTE
I_REEL = 0
I_REEL = I_REEL + 1def CubeL(a, b, c):
    bpy.ops.mesh.primitive_cube_add(location=(0, EPA_CLO / 2, c / 2))
    bpy.ops.transform.translate(value=((a - EPA_CLO) / 2, 0, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(0, EPA_CLO / 2, c / 2))
    bpy.ops.transform.translate(value=(a - EPA_CLO / 2, b / 2 - EPA_CLO, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(0, -EPA_CLO / 2, c / 2))
    bpy.ops.transform.translate(value=((a + EPA_CLO) / 2, b, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(0, EPA_CLO / 2, c / 2))
    bpy.ops.transform.translate(value=(EPA_CLO / 2, b / 2, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(0, EPA_CLO / 2, c / 2))
    bpy.ops.transform.translate(value=(a / 2, (b - EPA_CLO) / 2, (c - EPA_CLO) / 2))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(1, 0, 0), mirror=False)
    bpy.context.object.scale[0] = (a) / 2 - EPA_CLO
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2 - EPA_CLO
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    for ob in bpy.context.scene.objects:
        ob.select = ob.name.startswith(
            "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
        )
    bpy.ops.object.join()def A():
    CubeL(VAL_X_L, VAL_Y_L, VAL_Z_L)def CubeM(a, b, c, d, e, f):
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=((a - EPA_CLO) / 2, 0, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(a - EPA_CLO / 2, b / 2 - EPA_CLO, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e - EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=((a + EPA_CLO) / 2, b, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(EPA_CLO / 2, b / 2, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(a / 2, (b - EPA_CLO) / 2, (c - EPA_CLO) / 2))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(1, 0, 0), mirror=False)
    bpy.context.object.scale[0] = (a) / 2 - EPA_CLO
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2 - EPA_CLO
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    for ob in bpy.context.scene.objects:
        ob.select = ob.name.startswith(
            "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
        )
    bpy.ops.object.join()def B():
    if x == 1:  # 1. QUADRANT CUBE S
        CubeM(VAL_X_M, VAL_Y_M, VAL_Z_M, 0, 0, 0)
    elif x == 2:  # 2. QUADRANT CUBE S
        CubeM(VAL_X_M, VAL_Y_M, VAL_Z_M, VAL_X_L - VAL_X_M, 0, 0)
    elif x == 3:  # 3. QUADRANT CUBE S
        CubeM(VAL_X_M, VAL_Y_M, VAL_Z_M, VAL_X_L - VAL_X_M, VAL_Y_L - VAL_Y_M, 0)
    elif x == 4:  # 4. QUADRANT CUBE S
        CubeM(VAL_X_M, VAL_Y_M, VAL_Z_M, 0, VAL_X_L - VAL_Y_M, 0)def CubeS(a, b, c, d, e, f):
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=((a - EPA_CLO) / 2, 0, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(a - EPA_CLO / 2, b / 2 - EPA_CLO, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e - EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=((a + EPA_CLO) / 2, b, 0))
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(EPA_CLO / 2, b / 2, 0))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(0, 0, 1), mirror=False)
    bpy.context.object.scale[0] = (a - EPA_CLO) / 2
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    bpy.ops.mesh.primitive_cube_add(location=(d + 0, e + EPA_CLO / 2, f + c / 2))
    bpy.ops.transform.translate(value=(a / 2, (b - EPA_CLO) / 2, (c - EPA_CLO) / 2))
    bpy.ops.transform.rotate(value=-pi / 2, axis=(1, 0, 0), mirror=False)
    bpy.context.object.scale[0] = (a) / 2 - EPA_CLO
    bpy.context.object.scale[1] = EPA_CLO / 2
    bpy.context.object.scale[2] = c / 2 - EPA_CLO
    bpy.context.object.name = "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
    for ob in bpy.context.scene.objects:
        ob.select = ob.name.startswith(
            "Boite_x" + str(i) + "_y" + str(j) + "_z" + str(k)
        )
    bpy.ops.object.join()def C():
    if x == 1:  # 1. QUADRANT CUBE S
        if y == 1:  # 1. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, 0, 0, 0)
        elif y == 2:  # 2. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_M - VAL_X_S, 0, 0)
        elif y == 3:  # 3. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_M - VAL_X_S, VAL_Y_M - VAL_Y_S, 0)
        elif y == 4:  # 4. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, 0, VAL_X_M - VAL_Y_S, 0)
    elif x == 2:  # 2. QUADRANT CUBE S
        if y == 1:  # 1. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_M, 0, 0)
        elif y == 2:  # 2. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_S, 0, 0)
        elif y == 3:  # 3. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_S, VAL_Y_M - VAL_Y_S, 0)
        elif y == 4:  # 4. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_M, VAL_X_M - VAL_Y_S, 0)
    elif x == 3:  # 3. QUADRANT CUBE S
        if y == 1:  # 1. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_M, VAL_Y_L - VAL_Y_M, 0)
        elif y == 2:  # 2. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_S, VAL_Y_L - VAL_Y_M, 0)
        elif y == 3:  # 3. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_S, VAL_Y_L - VAL_Y_S, 0)
        elif y == 4:  # 4. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_L - VAL_X_M, VAL_X_L - VAL_Y_S, 0)
    elif x == 4:  # 4. QUADRANT CUBE S
        if y == 1:  # 1. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, 0, VAL_X_L - VAL_Y_M, 0)
        elif y == 2:  # 2. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_M - VAL_X_S, VAL_Y_L - VAL_Y_M, 0)
        elif y == 3:  # 3. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, VAL_X_M - VAL_X_S, VAL_Y_L - VAL_Y_S, 0)
        elif y == 4:  # 4. QUADRANT CUBE S
            CubeS(VAL_X_S, VAL_Y_S, VAL_Z_S, 0, VAL_Y_L - VAL_Y_S, 0)def UNITE(jj, ii, kk):
    A()
    B()
    C()
    bpy.ops.transform.translate(value=(jj * RED_L, ii * RED_L, kk * RED_L))def Boolean(x):
    bpy.ops.object.modifier_add(type="BOOLEAN")
    bpy.context.object.modifiers["Boolean"].operation = "DIFFERENCE"
    bpy.context.object.modifiers["Boolean"].object = bpy.data.objects[x]
    bpy.ops.object.modifier_apply(apply_as="DATA", modifier="Boolean")def Delete(x):
    bpy.ops.object.select_all(action="DESELECT")
    bpy.data.objects[x].select = True
    bpy.ops.object.delete(use_global=False)def Cube(a, b, c, d, e, f):
    bpy.ops.mesh.primitive_cube_add(radius=0.5)
    bpy.ops.transform.translate(value=(a, b, c))
    bpy.ops.transform.resize(value=(d, e, f))def Fenetre(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z):
    Cube(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z)
    bpy.context.object.name = "Négatif"def Ouverture(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z):
    Cube(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z)
    bpy.context.object.name = "Négatif"def Camera():
    bpy.ops.object.camera_add(
        view_align=True, location=(-25, -25, -35), rotation=(2.3562, 0, -0.785398)
    )
    bpy.context.object.data.ortho_scale = 6.6
    bpy.context.object.data.type = "ORTHO"
    bpy.context.scene.world.ambient_color = (1, 1, 1)
    bpy.context.scene.render.resolution_x = 4000
    bpy.context.scene.render.resolution_y = 3000bpy.context.scene.select_contour = True
    bpy.context.scene.render.use_freestyle = True
    bpy.context.scene.render.line_thickness = 1.2for k in range(0, CON_HAU):
    for j in range(0, CON_LON):
        for i in range(0, CON_LAR):
            x = random.randint(0, 4)
            if x == 1 or x == 2 or x == 3 or x == 4:
                x = random.randint(0, 4)
            y = random.randint(0, 4)
            if y == 1 or y == 2 or y == 3 or y == 4:
                y = random.randint(0, 4)
                if y == 1 or y == 2 or y == 3 or y == 4:
                    y = random.randint(0, 4)
                    if y == 1 or y == 2 or y == 3 or y == 4:
                        y = random.randint(0, 4)x = 1 y = 1
            I_REEL = I_REEL + 1            if i == 0:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2,
                        EPA_CLO * 0.5,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        j + VAL_X_L / 2,
                        EPA_CLO * 0.5,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        j + VAL_X_L / 2,
                        EPA_CLO * 0.5,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
            elif i == CON_LAR - 1:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2,
                        CON_LAR * VAL_Y_L,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        j + VAL_X_L / 2,
                        CON_LAR * VAL_Y_L,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        j + VAL_X_L / 2,
                        CON_LAR * VAL_Y_L,
                        k + VAL_Z_L / 2,
                        0.6,
                        EPA_CLO * 2.2,
                        0.55,
                    )
            elif j == 0:
                if x == 0:
                    Fenetre(
                        EPA_CLO * 1.2 / 2,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        EPA_CLO * 1.2 / 2,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        EPA_CLO * 1.2 / 2,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
            elif j == CON_LON - 1:
                if x == 0:
                    Fenetre(
                        CON_LON * VAL_X_L,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        CON_LON * VAL_X_L,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        CON_LON * VAL_X_L,
                        i + VAL_Y_L / 2,
                        k + VAL_Z_L / 2,
                        EPA_CLO * 2.2,
                        0.6,
                        0.55,
                    )
            elif i < 1:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
            elif i == CON_LAR - 1:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
            elif i >= 1 and i < CON_LAR - 1:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + VAL_Y_L - EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        j + VAL_X_L / 2,
                        i + EPA_CLO / 2,
                        k + 0.6 / 2.2,
                        0.48,
                        EPA_CLO * 1.2,
                        0.55,
                    )
            elif j < 1:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        j + VAL_X_L - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        j + VAL_X_L - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
            elif j == CON_LON - 1:
                if x == 0:
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
            elif j >= 1 and j < CON_LON - 2:
                if x == 0:
                    Fenetre(
                        j + VAL_X_L / 2 - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.7 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 1:
                    Fenetre(
                        j + VAL_X_L - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 2:
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 3:
                    Fenetre(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )
                if x == 4:
                    Fenetre(
                        j + VAL_X_L - EPA_CLO / 2,
                        i + VAL_Y_L / 2,
                        k + 0.6 / 2.2,
                        EPA_CLO * 1.2,
                        0.48,
                        0.55,
                    )            if i < 1:
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_M + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
            if i >= 1 and i < CON_LAR - 1:
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2.05,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.44 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.44 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_M + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
            if i == CON_LAR - 1:
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.45,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_M - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.4,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 + 0.25 - 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_M + VAL_Y_S - EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S / 2 - 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L / 2 - 0.25 + 0.2,
                            i + VAL_Y_L - VAL_Y_M + EPA_CLO / 2,
                            k + 0.48 / 2.2,
                            0.40,
                            EPA_CLO * 1.2,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S / 2 + 0.03,
                            i + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            k + 0.45 / 2.2,
                            0.38,
                            EPA_CLO * 1.2,
                            0.42,
                        )
            if j < 1:
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_Y_L + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_Y_M + VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
            if j >= 1 and j < CON_LON - 2:
                if y == 0:
                    Ouverture(
                        j + EPA_CLO / 2,
                        i + VAL_Y_L / 2 - 0.25 + 0.2,
                        k + 0.48 / 2.2,
                        EPA_CLO * 1.2,
                        0.45,
                        0.45,
                    )
                    Ouverture(
                        j + VAL_X_M - EPA_CLO / 2,
                        i + VAL_Y_L / 2 - 0.25 + 0.2,
                        k + 0.48 / 2.2,
                        EPA_CLO * 1.2,
                        0.45,
                        0.45,
                    )
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.04,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_S - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_Y_L - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_Y_M + VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                    elif y == 4:  # 4. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
            if j == CON_LON - 1:
                if x == 1:  # 1. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_Y_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.04,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - VAL_X_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 4:
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_S - EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 2:  # 2. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_S / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 - 0.25 + 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 3:  # 3. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + VAL_X_L - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_L - VAL_X_M + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_L - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                elif x == 4:  # 4. QUADRANT CUBE M
                    if y == 0:
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.45,
                            0.45,
                        )
                    elif y == 1:  # 1. QUADRANT CUBE S
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_Y_M + VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 2:  # 2. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_M - VAL_Y_S + EPA_CLO / 2,
                            i + VAL_X_L / 2 + 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
                    elif y == 3:  # 3. QUADRANT CUBE S
                        Ouverture(
                            j + EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                    elif y == 4:
                        Ouverture(
                            j + VAL_X_M - EPA_CLO / 2,
                            i + VAL_Y_L / 2 + 0.25 - 0.2,
                            k + 0.48 / 2.2,
                            EPA_CLO * 1.2,
                            0.40,
                            0.45,
                        )
                        Ouverture(
                            j + VAL_Y_S - EPA_CLO / 2,
                            i + VAL_X_L - VAL_X_S / 2 - 0.03,
                            k + 0.45 / 2.2,
                            EPA_CLO * 1.2,
                            0.38,
                            0.42,
                        )
            for ob in scene.objects:
                if ob.type == "MESH" and ob.name.startswith("Négatif"):
                    ob.select = True
                bpy.ops.object.join()
            UNITE(j, i, k)
for ob in scene.objects:
    if ob.type == "MESH" and ob.name.startswith("Boite"):
        ob.select = True
bpy.ops.object.join()
bpy.context.object.name = "Unité"for ob in scene.objects:
    if ob.name == ("Négatif"):
        Boolean("Négatif")
        Delete("Négatif")
    if ob.name.startswith("Négatif.001"):
        Boolean("Négatif.001")
        Delete("Négatif.001")
    if ob.name.startswith("Négatif.002"):
        Boolean("Négatif.002")
        Delete("Négatif.002")
    if ob.name.startswith("Négatif.003"):
        Boolean("Négatif.003")
        Delete("Négatif.003")
    if ob.name.startswith("Négatif.004"):
        Boolean("Négatif.004")
        Delete("Négatif.004")
    if ob.name.startswith("Négatif.005"):
        Boolean("Négatif.005")
        Delete("Négatif.005")
    if ob.name.startswith("Négatif.006"):
        Boolean("Négatif.006")
        Delete("Négatif.006")
    if ob.name.startswith("Négatif.007"):
        Boolean("Négatif.007")
        Delete("Négatif.007")
    if ob.name.startswith("Négatif.008"):
        Boolean("Négatif.008")
        Delete("Négatif.008")Camera()